namespace go comment
include "../cmd/user/user.thrift"

struct CommentActionRequest {
    1: required string token,          // 用户鉴权token
    2: required i64 video_id,          // 评论的视频id
    3: required i32 action_type,       // 1-发布评论,2-删除评论
    4: optional string comment_text,   // 用户填写的评论内容,action_type=1时使用
    5: optional i64 comment_id,        // 要删除的评论id,action_type=2时使用
}

struct CommentActionResponse {
    1: required i32 status_code,       // 状态码,0成功,其他值失败
    2: optional string status_msg,     // 返回状态描述
    3: optional Comment comment,       // 评论成功返回评论内容,不需要重新拉取整个评论列表
}

struct Comment {
    1: required i64 id,                // 评论的视频id
    2: required user.User user,        // 评论用户信息
    3: required string content,        // 评论内容
    4: required string create_date,    // 评论发布日期，格式mm-dd
}

struct CommentListRequest {
    1: required string token,
    2: required i64 video_id,
}

struct CommentListResponse {
    1: required i32 status_code,
    2: optional string status_msg,
    3: required list<Comment> comment_list,
}

service CommentService {
    CommentActionResponse CommentAction(1:required CommentActionRequest request),    // 评论操作
    CommentListResponse CommentList(1:required CommentListRequest request),          // 视频评论列表
}
